use super::user::User;
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserDetail {
    pub user: User,
    pub profile: Profile,
    pub profile_publicity: ProfilePublicity,
    // Maybe add workspace field
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Profile {
    pub webpage: Option<String>,
    pub gender: Option<String>,
    pub birth: Option<String>,
    pub birth_day: Option<String>,
    pub birth_year: Option<u32>,
    pub region: Option<String>,
    pub address_id: Option<u32>,
    pub country_code: Option<String>,
    pub job: Option<String>,
    pub job_id: Option<u32>,
    pub total_follow_users: u32,
    pub total_mypixiv_users: u32,
    pub total_illusts: u32,
    pub total_manga: u32,
    pub total_novels: u32,
    pub total_illust_bookmarks_public: u32,
    pub total_illust_series: u32,
    pub total_novel_series: u32,
    pub background_image_url: Option<String>,
    pub twitter_account: Option<String>,
    pub twitter_url: Option<String>,
    pub pawoo_url: Option<String>,
    pub is_premium: bool,
    pub is_using_custom_profile_image: bool,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProfilePublicity {
    pub gender: String,
    pub region: String,
    pub birth_day: String,
    pub birth_year: String,
    pub job: String,
    pub pawoo: bool,
}
